import math

ang60 = math.pi / 3

DEPTH = 7

CNTX.set_source_rgb(*COLOR("black"))

def triangle( x, y, dim ):
    CNTX.save()
    CNTX.move_to(x,y)
    CNTX.rel_line_to(dim*math.cos(ang60), dim*-math.sin(ang60))
    CNTX.rel_line_to(dim*math.cos(ang60), dim*math.sin(ang60))
    CNTX.close_path()
    CNTX.fill()
    CNTX.restore()
    pass
    
def sierpinski( x, y, dim, count ):
    global DEPTH
    if count > DEPTH:
        triangle( x, y, dim )
        return
    sierpinski( x, y, dim / 2, count + 1 )
    sierpinski( x + dim / 4, y - (dim / 2)*math.sin(ang60), dim / 2, count + 1 )
    sierpinski( x + dim / 2, y, dim / 2, count + 1 )

CNTX.translate(0, W)
CNTX.scale(W, W)
sierpinski( 0.0, 0.0, 1.0, 1)


